home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 3 / BBS in a box - Trilogy III.iso / Files / Prog / D-G / FORTRAN Goodies / QuickTime Folder / QuickTimeComponents.f < prev    next >
Encoding:
Text File  |  1992-10-23  |  24.0 KB  |  689 lines  |  [TEXT/MPS ]

  1.  
  2. c    Created: Saturday, August 17, 1991 at 10:25 AM
  3. c     QuickTimeComponents.f
  4. c     FORTRAN Interface to the Macintosh Libraries
  5.  
  6. c     Copyright Apple Computer, Inc. 1991
  7. c     All rights reserved
  8.     
  9.     
  10.     
  11.     
  12.     
  13. !!IFC NOT UsingIncludes
  14. !!I ZeroInc.f
  15. !!ENDC
  16.     
  17. !!IFC NOT GotComponents
  18. !!I Components.f
  19. !!ENDC
  20. !!IFC NOT GotImageCompression
  21. !!I ImageCompression.f
  22. !!ENDC
  23. !!IFC NOT GotMovies
  24. !!I Movies.f
  25. !!ENDC
  26. !!IFC NOT GotQuickDraw
  27. !!I QuickDraw.f
  28. !!ENDC
  29. !!IFC NOT GotVideo
  30. !!I Video.f
  31. !!ENDC
  32.  
  33. !!IFC NOT GOTQUICKTIMECOMPONENTS
  34. !!SETC GOTQUICKTIMECOMPONENTS = true
  35.     !****
  36.     
  37.     ! Clock Component
  38.     
  39.     !****
  40.     Character*4 clockComponentType 
  41.     Parameter (clockComponentType = 'clok')
  42.     Character*4 systemTickClock 
  43.     Parameter (systemTickClock = 'tick'            ! subtype: 60ths since boot )
  44.     Character*4 systemMicrosecondClock 
  45.     Parameter (systemMicrosecondClock = 'micr'    ! subtype: 1000000ths since boot )
  46.     
  47.     Integer*2 kClockRateIsLinear 
  48.     Parameter (kClockRateIsLinear = 1)
  49.     Integer*2 kClockImplementsCallBacks 
  50.     Parameter (kClockImplementsCallBacks = 2)
  51.     
  52.     Integer*2 kClockGetClockTimeSelect 
  53.     Parameter (kClockGetClockTimeSelect = 1)
  54.     Integer*2 kClockSetClockTimeSelect 
  55.     Parameter (kClockSetClockTimeSelect = 2)
  56.     Integer*2 kClockNewCallBackSelect 
  57.     Parameter (kClockNewCallBackSelect = 3)
  58.     Integer*2 kClockDisposeCallBackSelect 
  59.     Parameter (kClockDisposeCallBackSelect = 4)
  60.     Integer*2 kClockCallMeWhenSelect 
  61.     Parameter (kClockCallMeWhenSelect = 5)
  62.     Integer*2 kClockCancelCallBackSelect 
  63.     Parameter (kClockCancelCallBackSelect = 6)
  64.     Integer*2 kClockRateChangedSelect 
  65.     Parameter (kClockRateChangedSelect = 7)
  66.     Integer*2 kClockTimeChangedSelect 
  67.     Parameter (kClockTimeChangedSelect = 8)
  68.     Integer*2 kClockSetTimeBaseSelect 
  69.     Parameter (kClockSetTimeBaseSelect = 9)
  70.     
  71.     
  72.     ! Video Digitizer Component
  73.     
  74.     
  75.      !Standard type for video digitizers 
  76.     Character*4 videoDigitizerComponentType 
  77.     Parameter (videoDigitizerComponentType = 'vdig')
  78.     Integer*2 vdigInterfaceRev 
  79.     Parameter (vdigInterfaceRev = 2)
  80.     
  81.     ! Input Format Standards 
  82.     Integer*2 ntscIn 
  83.     Parameter (ntscIn = 0)                ! ntsc input format 
  84.     Integer*2 palIn 
  85.     Parameter (palIn = 1)                ! pal input format 
  86.     Integer*2 secamIn 
  87.     Parameter (secamIn = 2)                ! secam input format 
  88.     
  89.     
  90.     ! Input Formats 
  91.     Integer*2 compositeIn 
  92.     Parameter (compositeIn = 0)    ! input is composite format 
  93.     Integer*2 sVideoIn
  94.     Parameter (sVideoIn = 1)                    ! input is sVideo format 
  95.     Integer*2 rgbComponentIn 
  96.     Parameter (rgbComponentIn = 2)                ! input is rgb component format 
  97.     
  98.     
  99.     ! Video Digitizer PlayThru States 
  100.     Integer*2 vdPlayThruOff 
  101.     Parameter (vdPlayThruOff = 0)
  102.     Integer*2 vdPlayThruOn 
  103.     Parameter (vdPlayThruOn = 1)
  104.     
  105.     
  106.     ! Input Color Space Modes 
  107.     Integer*2 vdDigitizerBW 
  108.     Parameter (vdDigitizerBW = 0)                    ! black and white 
  109.     Integer*2 vdDigitizerRGB 
  110.     Parameter (vdDigitizerRGB = 1)                    ! rgb color 
  111.     
  112.     
  113.     ! Phase Lock Loop Modes 
  114.     Integer*2 vdBroadcastMode 
  115.     Parameter (vdBroadcastMode = 0)                ! Broadcast / Laser Disk video mode 
  116.     Integer*2 vdVTRMode 
  117.     Parameter (vdVTRMode = 1)                        ! VCR / Magnetic media mode 
  118.     
  119.     
  120.     ! Field Select Options 
  121.     Integer*2 vdUseAnyField 
  122.     Parameter (vdUseAnyField = 0)
  123.     Integer*2 vdUseOddField 
  124.     Parameter (vdUseOddField = 1)
  125.     Integer*2 vdUseEvenField 
  126.     Parameter (vdUseEvenField = 2)
  127.     
  128.     ! vdig types 
  129.     Integer*2 vdTypeBasic 
  130.     Parameter (vdTypeBasic = 0)                    ! basic, no clipping 
  131.     Integer*2 vdTypeAlpha 
  132.     Parameter (vdTypeAlpha = 1)                    ! supports clipping with alpha channel 
  133.     Integer*2 vdTypeMask 
  134.     Parameter (vdTypeMask = 2)                        ! supports clipping with mask plane 
  135.     Integer*2 vdTypeKey 
  136.     Parameter (vdTypeKey = 3)                        ! supports clipping with key color(s) 
  137.     
  138.     
  139.     ! Digitizer Error Codes 
  140.     Integer*2 digiUnimpErr 
  141.     Parameter (digiUnimpErr = -2201)                ! feature unimplemented 
  142.     Integer*2 qtParamErr 
  143.     Parameter (qtParamErr = -2202)                    ! bad input parameter ( out of range, etc ) 
  144.     Integer*2 matrixErr 
  145.     Parameter (matrixErr = -2203)                    ! bad matrix, digitizer did nothing 
  146.     Integer*2 notExactMatrix 
  147.     Parameter (notExactMatrix = -2204)                ! warning of bad matrix, digitizer did its best 
  148.     Integer*2 noMoreKeyColors 
  149.     Parameter (noMoreKeyColors = -2205)            ! all key indexes in use 
  150.     Integer*2 notExactSize 
  151.     Parameter (notExactSize = -2206)                ! Can’t do exact size requested 
  152.     Integer*2 badDepth 
  153.     Parameter (badDepth = -2207)                    ! Can’t digitize into this depth 
  154.     Integer*2 noDMA 
  155.     Parameter (noDMA = -2208)                        ! Can’t do DMA digitizing ( i.e. can't go to requested dest 
  156.     Integer*2 badCallOrder 
  157.     Parameter (badCallOrder = -2209)                ! Usually due to a status call being called prior to being setup first 
  158.     
  159.     ! Digitizer Input Capability/Current Flags 
  160.     Integer*4 digiInDoesNTSC 
  161.     Parameter (digiInDoesNTSC = $1)                ! digitizer supports NTSC input format 
  162.     Integer*4 digiInDoesPAL 
  163.     Parameter (digiInDoesPAL = $2)                    ! digitizer supports PAL input format 
  164.     Integer*4 digiInDoesSECAM 
  165.     Parameter (digiInDoesSECAM = $4)                ! digitizer supports SECAM input format 
  166.     Integer*4 digiInDoesGenLock 
  167.     Parameter (digiInDoesGenLock = $80)            ! digitizer does genlock 
  168.     
  169.     Integer*4 digiInDoesComposite 
  170.     Parameter (digiInDoesComposite = $100)            ! digitizer supports composite input type 
  171.     Integer*4 digiInDoesSVideo 
  172.     Parameter (digiInDoesSVideo = $200)            ! digitizer supports S-Video input type 
  173.     Integer*4 digiInDoesComponent 
  174.     Parameter (digiInDoesComponent = $400)            ! digitizer supports component (rgb) input type 
  175.     Integer*4 digiInVTR_Broadcast 
  176.     Parameter (digiInVTR_Broadcast = $800)            ! digitizer can differentiate between the two 
  177.     
  178.     Integer*4 digiInDoesColor 
  179.     Parameter (digiInDoesColor = $1000)            ! digitizer supports color 
  180.     Integer*4 digiInDoesBW 
  181.     Parameter (digiInDoesBW = $2000)                ! digitizer supports black & white 
  182.     
  183.     
  184.     ! Digitizer Input Current Flags (these are valid only during active operating conditions) 
  185.     Integer*4 digiInSignalLock 
  186.     Parameter (digiInSignalLock = $80000000)        ! digitizer detects input signal is locked - this bit = horiz lock || vertical lock 
  187.     
  188.     
  189.     ! Digitizer Output Capability/Current Flags 
  190.     Integer*4 digiOutDoes1 
  191.     Parameter (digiOutDoes1 = $1)                    ! digitizer supports 1 bit pixels 
  192.     Integer*4 digiOutDoes2 
  193.     Parameter (digiOutDoes2 = $2)                    ! digitizer supports 2 bit pixels 
  194.     Integer*4 digiOutDoes4 
  195.     Parameter (digiOutDoes4 = $4)                    ! digitizer supports 4 bit pixels 
  196.     Integer*4 digiOutDoes8 
  197.     Parameter (digiOutDoes8 = $8)                    ! digitizer supports 8 bit pixels 
  198.     Integer*4 digiOutDoes16 
  199.     Parameter (digiOutDoes16 = $10)                ! digitizer supports 16 bit pixels 
  200.     Integer*4 digiOutDoes32 
  201.     Parameter (digiOutDoes32 = $20)                ! digitizer supports 32 bit pixels 
  202.     Integer*4 digiOutDoesDither 
  203.     Parameter (digiOutDoesDither = $40)            ! digitizer dithers in indexed modes 
  204.     Integer*4 digiOutDoesStretch 
  205.     Parameter (digiOutDoesStretch = $80)            ! digitizer can arbitrarily stretch 
  206.     Integer*4 digiOutDoesShrink 
  207.     Parameter (digiOutDoesShrink = $100)            ! digitizer can arbitrarily shrink 
  208.     Integer*4 digiOutDoesMask 
  209.     Parameter (digiOutDoesMask = $200)                ! digitizer can mask to clipping regions 
  210.     
  211.     Integer*4 digiOutDoesDouble 
  212.     Parameter (digiOutDoesDouble = $800)            ! digitizer can stretch to exactly double size 
  213.     Integer*4 digiOutDoesQuad 
  214.     Parameter (digiOutDoesQuad = $1000)            ! digitizer can stretch exactly quadruple size 
  215.     Integer*4 digiOutDoesQuarter 
  216.     Parameter (digiOutDoesQuarter = $2000)            ! digitizer can shrink to exactly quarter size 
  217.     Integer*4 digiOutDoesSixteenth 
  218.     Parameter (digiOutDoesSixteenth = $4000)        ! digitizer can shrink to exactly sixteenth size 
  219.     
  220.     Integer*4 digiOutDoesRotate 
  221.     Parameter (digiOutDoesRotate = $8000)            ! digitizer supports rotate transformations 
  222.     Integer*4 digiOutDoesHorizFlip 
  223.     Parameter (digiOutDoesHorizFlip = $10000)        ! digitizer supports horizontal flips Sx < 0 
  224.     Integer*4 digiOutDoesVertFlip 
  225.     Parameter (digiOutDoesVertFlip = $20000)        ! digitizer supports vertical flips Sy < 0 
  226.     Integer*4 digiOutDoesSkew 
  227.     Parameter (digiOutDoesSkew = $40000)            ! digitizer supports skew (shear, twist) 
  228.     Integer*4 digiOutDoesBlend 
  229.     Parameter (digiOutDoesBlend = $80000)
  230.     Integer*4 digiOutDoesWarp 
  231.     Parameter (digiOutDoesWarp = $100000)
  232.     
  233.     Integer*4 digiOutDoesHW_DMA 
  234.     Parameter (digiOutDoesHW_DMA = $200000)        ! digitizer not constrained to local device 
  235.     Integer*4 digiOutDoesHWPlayThru 
  236.     Parameter (digiOutDoesHWPlayThru = $400000)    ! digitizer doesn't need time to play thru 
  237.     Integer*4 digiOutDoesILUT 
  238.     Parameter (digiOutDoesILUT = $800000)            ! digitizer does inverse LUT for index modes 
  239.     Integer*4 digiOutDoesKeyColor 
  240.     Parameter (digiOutDoesKeyColor = $1000000)        ! digitizer does key color functions too 
  241.     Integer*4 digiOutDoesAsyncGrabs 
  242.     Parameter (digiOutDoesAsyncGrabs = $2000000)    ! digitizer supports async grabs 
  243.     
  244. c    VideoDigitizerComponent = ComponentInstance
  245. c    VideoDigitizerError = ComponentResult
  246. c    VdigIntProc = ComponentResult        
  247.     
  248.     ! Types 
  249.     Structure /DigitizerInfo /
  250.      Integer*2 vdigType 
  251.      Integer*4 inputCapabilityFlags 
  252.      Integer*4 outputCapabilityFlags 
  253.      Integer*4 inputCurrentFlags 
  254.      Integer*4 outputCurrentFlags 
  255.      Integer*2 slot                         ! temporary for connection purposes 
  256.      Record /GDHandle/ gdh                         ! temporary for digitizers that have preferred screen 
  257.      Record /GDHandle/ maskgdh                     ! temporary for digitizers that have mask planes 
  258.      Integer*2 minDestHeight             ! Smallest resizable height 
  259.      Integer*2 minDestWidth                 ! Smallest resizable width 
  260.      Integer*2 maxDestHeight             ! Largest resizable height 
  261.      Integer*2 maxDestWidth                 ! Largest resizable height 
  262.      Integer*2 blendLevels                 ! Number of blend levels supported (2 If (1 bit mask) 
  263.      Integer*4 Private                     ! reserved 
  264.     End Structure
  265.     
  266.     Structure /VdigType /
  267.      Integer*4 digType 
  268.      Integer*4 Private 
  269.     End Structure
  270.     
  271.     Structure /VdigTypeList /
  272.      Integer*2 count 
  273.      Record /VdigType/ list(0:0)
  274.     End Structure
  275.     Structure /VdigTypeListPtr /
  276.         Pointer /VdigTypeList/ P
  277.     End Structure
  278.     Structure /VdigTypeListHandle /
  279.         Pointer /VdigTypeListPtr/ H
  280.     End Structure
  281.  
  282.     Structure /VdigBufferRec /
  283.         Record /PixMapHandle/ dest 
  284.         Record /Point/ location 
  285.         Integer*4 reserved 
  286.     End Structure
  287.     
  288.     Structure /VdigBufferRecList /
  289.         Integer*2 count 
  290.         Record /MatrixRecordPtr/ matrix  
  291.         Record /RgnHandle/ mask 
  292.         Record /VdigBufferRec/    list(0:0)
  293.         END
  294.     Structure /VdigBufferRecListPtr /
  295.         Pointer /VdigBufferRecList/ P
  296.     End Structure
  297.     Structure /VdigBufferRecListHandle /
  298.         Pointer /VdigBufferRecListPtr/ H
  299.     End Structure
  300.  
  301.     ! Video Digitizer Interface 
  302.     Integer*2 kSelectVDGetMaxSrcRect 
  303.     Parameter (kSelectVDGetMaxSrcRect = 1)
  304.     Integer*2 kSelectVDGetActiveSrcRect 
  305.     Parameter (kSelectVDGetActiveSrcRect = 2)
  306.     Integer*2 kSelectVDSetDigitizerRect 
  307.     Parameter (kSelectVDSetDigitizerRect = 3)
  308.     Integer*2 kSelectVDGetDigitizerRect 
  309.     Parameter (kSelectVDGetDigitizerRect = 4)
  310.     Integer*2 kSelectVDGetVBlankRect 
  311.     Parameter (kSelectVDGetVBlankRect = 5)
  312.     Integer*2 kSelectVDGetMaskPixMap 
  313.     Parameter (kSelectVDGetMaskPixMap = 6)
  314.     Integer*2 kSelectVDGetPlayThruDestination 
  315.     Parameter (kSelectVDGetPlayThruDestination = 8)
  316.     Integer*2 kSelectVDUseThisCLUT 
  317.     Parameter (kSelectVDUseThisCLUT = 9)
  318.     Integer*2 kSelectVDSetInputGammaValue 
  319.     Parameter (kSelectVDSetInputGammaValue = 10)
  320.     Integer*2 kSelectVDGetInputGammaValue 
  321.     Parameter (kSelectVDGetInputGammaValue = 11)
  322.     Integer*2 kSelectVDSetBrightness 
  323.     Parameter (kSelectVDSetBrightness = 12)
  324.     Integer*2 kSelectVDGetBrightness 
  325.     Parameter (kSelectVDGetBrightness = 13)
  326.     Integer*2 kSelectVDSetContrast 
  327.     Parameter (kSelectVDSetContrast = 14)
  328.     Integer*2 kSelectVDSetHue 
  329.     Parameter (kSelectVDSetHue = 15)
  330.     Integer*2 kSelectVDSetSharpness 
  331.     Parameter (kSelectVDSetSharpness = 16)
  332.     Integer*2 kSelectVDSetSaturation 
  333.     Parameter (kSelectVDSetSaturation = 17)
  334.     Integer*2 kSelectVDGetContrast 
  335.     Parameter (kSelectVDGetContrast = 18)
  336.     Integer*2 kSelectVDGetHue 
  337.     Parameter (kSelectVDGetHue = 19)
  338.     Integer*2 kSelectVDGetSharpness 
  339.     Parameter (kSelectVDGetSharpness = 20)
  340.     Integer*2 kSelectVDGetSaturation 
  341.     Parameter (kSelectVDGetSaturation = 21)
  342.     Integer*2 kSelectVDGrabOneFrame 
  343.     Parameter (kSelectVDGrabOneFrame = 22)
  344.     Integer*2 kSelectVDGetMaxAuxBuffer 
  345.     Parameter (kSelectVDGetMaxAuxBuffer = 23)
  346.     Integer*2 kSelectVDGetDigitizerInfo 
  347.     Parameter (kSelectVDGetDigitizerInfo = 25)
  348.     Integer*2 kSelectVDGetCurrentFlags 
  349.     Parameter (kSelectVDGetCurrentFlags = 26)
  350.     Integer*2 kSelectVDSetKeyColor 
  351.     Parameter (kSelectVDSetKeyColor = 27)
  352.     Integer*2 kSelectVDGetKeyColor 
  353.     Parameter (kSelectVDGetKeyColor = 28)
  354.     Integer*2 kSelectVDAddKeyColor 
  355.     Parameter (kSelectVDAddKeyColor = 29)
  356.     Integer*2 kSelectVDGetNextKeyColor 
  357.     Parameter (kSelectVDGetNextKeyColor = 30)
  358.     Integer*2 kSelectVDSetKeyColorRange 
  359.     Parameter (kSelectVDSetKeyColorRange = 31)
  360.     Integer*2 kSelectVDGetKeyColorRange 
  361.     Parameter (kSelectVDGetKeyColorRange = 32)
  362.     Integer*2 kSelectVDSetDigitizerUserInterrupt 
  363.     Parameter (kSelectVDSetDigitizerUserInterrupt = 33)
  364.     Integer*2 kSelectVDSetInputColorSpaceMode 
  365.     Parameter (kSelectVDSetInputColorSpaceMode = 34)
  366.     Integer*2 kSelectVDGetInputColorSpaceMode 
  367.     Parameter (kSelectVDGetInputColorSpaceMode = 35)
  368.     Integer*2 kSelectVDSetClipState 
  369.     Parameter (kSelectVDSetClipState = 36)
  370.     Integer*2 kSelectVDGetClipState 
  371.     Parameter (kSelectVDGetClipState = 37)
  372.     Integer*2 kSelectVDSetClipRgn 
  373.     Parameter (kSelectVDSetClipRgn = 38)
  374.     Integer*2 kSelectVDClearClipRgn 
  375.     Parameter (kSelectVDClearClipRgn = 39)
  376.     Integer*2 kSelectVDGetCLUTInUse 
  377.     Parameter (kSelectVDGetCLUTInUse = 40)
  378.     Integer*2 kSelectVDSetPLLFilterType 
  379.     Parameter (kSelectVDSetPLLFilterType = 41)
  380.     Integer*2 kSelectVDGetPLLFilterType 
  381.     Parameter (kSelectVDGetPLLFilterType = 42)
  382.     Integer*2 kSelectVDGetMaskandValue 
  383.     Parameter (kSelectVDGetMaskandValue = 43)
  384.     Integer*2 kSelectVDSetMasterBlendLevel 
  385.     Parameter (kSelectVDSetMasterBlendLevel = 44)
  386.     Integer*2 kSelectVDSetPlayThruDestination 
  387.     Parameter (kSelectVDSetPlayThruDestination = 45)
  388.     Integer*2 kSelectVDSetPlayThruOnOff 
  389.     Parameter (kSelectVDSetPlayThruOnOff = 46)
  390.     Integer*2 kSelectVDSetFieldPreference 
  391.     Parameter (kSelectVDSetFieldPreference = 47)
  392.     Integer*2 kSelectVDGetFieldPreference 
  393.     Parameter (kSelectVDGetFieldPreference = 48)
  394.     Integer*2 kSelectVDPreflightDestination 
  395.     Parameter (kSelectVDPreflightDestination = 50)
  396.     Integer*2 kSelectVDPreflightGlobalRect 
  397.     Parameter (kSelectVDPreflightGlobalRect = 51)
  398.     Integer*2 kSelectVDSetPlayThruGlobalRect 
  399.     Parameter (kSelectVDSetPlayThruGlobalRect = 52)
  400.     Integer*2 kSelectVDSetInputGammaRecord 
  401.     Parameter (kSelectVDSetInputGammaRecord = 53)
  402.     Integer*2 kSelectVDGetInputGammaRecord 
  403.     Parameter (kSelectVDGetInputGammaRecord = 54)
  404.     Integer*2 kSelectVDSetBlackLevelValue 
  405.     Parameter (kSelectVDSetBlackLevelValue = 55)
  406.     Integer*2 kSelectVDGetBlackLevelValue 
  407.     Parameter (kSelectVDGetBlackLevelValue = 56)
  408.     Integer*2 kSelectVDSetWhiteLevelValue 
  409.     Parameter (kSelectVDSetWhiteLevelValue = 57)
  410.     Integer*2 kSelectVDGetWhiteLevelValue 
  411.     Parameter (kSelectVDGetWhiteLevelValue = 58)
  412.     Integer*2 kSelectVDGetVideoDefaults 
  413.     Parameter (kSelectVDGetVideoDefaults = 59)
  414.     Integer*2 kSelectVDGetNumberOfInputs 
  415.     Parameter (kSelectVDGetNumberOfInputs = 60)
  416.     Integer*2 kSelectVDGetInputFormat 
  417.     Parameter (kSelectVDGetInputFormat = 61)
  418.     Integer*2 kSelectVDSetInput 
  419.     Parameter (kSelectVDSetInput = 62)
  420.     Integer*2 kSelectVDGetInput 
  421.     Parameter (kSelectVDGetInput = 63)
  422.     Integer*2 kSelectVDSetInputStandard 
  423.     Parameter (kSelectVDSetInputStandard = 64)
  424.     Integer*2 kSelectVDSetupBuffers 
  425.     Parameter (kSelectVDSetupBuffers = 65)
  426.     Integer*2 kSelectVDGrabOneFrameAsync 
  427.     Parameter (kSelectVDGrabOneFrameAsync = 66)
  428.     Integer*2 kSelectVDDone 
  429.     Parameter (kSelectVDDone = 67)
  430.     
  431.     Integer*2 kvdigSelectors 
  432.     Parameter (kvdigSelectors = 67)
  433.         
  434.     TYPE
  435.     ! Sequence Grab Component 
  436. c    SeqGrabComponent = ComponentInstance
  437. c    SGChannel = ComponentInstance
  438.     
  439.     CONST
  440.     Integer*2 SeqGrabComponentType 
  441.     Parameter (SeqGrabComponentType = )'barg'
  442.     Integer*2 SeqGrabChannelType 
  443.     Parameter (SeqGrabChannelType = )'sgch'
  444.     Integer*2 grabPictOffScreen 
  445.     Parameter (grabPictOffScreen = 1)
  446.     Integer*2 sgFlagControlledGrab 
  447.     Parameter (sgFlagControlledGrab = 1)
  448.     
  449.     Integer*2 channelPlayNormal 
  450.     Parameter (channelPlayNormal = 0)
  451.     Integer*2 channelPlayFast 
  452.     Parameter (channelPlayFast = 1)
  453.     Integer*2 channelPlayHighQuality 
  454.     Parameter (channelPlayHighQuality = 2)
  455.     Integer*2 channelPlayAllData 
  456.     Parameter (channelPlayAllData = 4)
  457.     
  458.     Integer*2 seqGrabToDisk 
  459.     Parameter (seqGrabToDisk = 1)
  460.     Integer*2 seqGrabToMemory 
  461.     Parameter (seqGrabToMemory = 2)
  462.     Integer*2 seqGrabUseTempMemory 
  463.     Parameter (seqGrabUseTempMemory = 4)
  464.     Integer*2 seqGrabAppendToFile 
  465.     Parameter (seqGrabAppendToFile = 8)
  466.     Integer*2 seqGrabDontAddMovieResource 
  467.     Parameter (seqGrabDontAddMovieResource = 16)
  468.     Integer*2 seqGrabRecord 
  469.     Parameter (seqGrabRecord = 1)
  470.     Integer*2 seqGrabPreview 
  471.     Parameter (seqGrabPreview = 2)
  472.     Integer*2 seqGrabPlayDuringRecord 
  473.     Parameter (seqGrabPlayDuringRecord = 4)
  474.     Integer*2 seqGrabHasBounds 
  475.     Parameter (seqGrabHasBounds = 1)
  476.     Integer*2 seqGrabHasVolume 
  477.     Parameter (seqGrabHasVolume = 2)
  478.     Integer*2 seqGrabHasDiscreteSamples 
  479.     Parameter (seqGrabHasDiscreteSamples = 4)
  480.     
  481.     Integer*2 noDeviceForChannel 
  482.     Parameter (noDeviceForChannel = -9400)
  483.     Integer*2 grabTimeComplete 
  484.     Parameter (grabTimeComplete = -9401)
  485.     Integer*2 cantDoThatInCurrentMode 
  486.     Parameter (cantDoThatInCurrentMode = -9402)
  487.     Integer*2 notEnoughMemoryToGrab 
  488.     Parameter (notEnoughMemoryToGrab = -9403)
  489.     Integer*2 notEnoughDiskSpaceToGrab 
  490.     Parameter (notEnoughDiskSpaceToGrab = -9404)
  491.     Integer*2 couldntGetRequiredComponent 
  492.     Parameter (couldntGetRequiredComponent = -9405)
  493.     Integer*2 badSGChannel 
  494.     Parameter (badSGChannel = -9406)
  495.     Integer*2 seqGrabInfoNotAvailable 
  496.     Parameter (seqGrabInfoNotAvailable = -9407)
  497.     Integer*2 deviceCantMeetRequest 
  498.     Parameter (deviceCantMeetRequest = -9408)
  499.     
  500.     Structure /SeqGrabFrameInfo /
  501.      Integer*4 frameOffset 
  502.      Integer*4 frameTime 
  503.      Integer*4 frameSize 
  504.      Record /SGChannel/ frameChannel 
  505.      Integer*4 frameRefCon 
  506.     End Structure
  507.         
  508.     
  509.     TYPE
  510.     ! Video Routines 
  511.     
  512. c    GrabProc = ComponentResult
  513. c    GrabCompleteProc = ComponentResult
  514. c    DisplayProc = ComponentResult
  515. c    CompressProc = ComponentResult
  516. c    CompressCompleteProc = ComponentResult
  517. c    AddFrameProc = ComponentResult
  518. c    TransferFrameProc = ComponentResult
  519.     
  520.     Structure /VideoBottles /
  521.      Integer*2 procCount 
  522.      Record /GrabProc/ grabProc 
  523.      Record /GrabCompleteProc/ grabCompleteProc 
  524.      Record /DisplayProc/ displayProc 
  525.      Record /CompressProc/ compressProc 
  526.      Record /AddFrameProc/ addFrameProc 
  527.      Record /TransferFrameProc/ transferFrameProc 
  528.     End Structure
  529.     
  530.     Structure /SGCompressInfo /
  531.       Record /Ptr/ buffer 
  532.       Integer*4 bufferSize 
  533.       Byte similarity 
  534.       Byte reserved 
  535.     End Structure
  536.     
  537.     
  538.     CONST
  539.         Integer*2 kSGInitializeSelect 
  540.         Parameter (kSGInitializeSelect = $1)
  541.         Integer*2 kSGSetDataOutputSelect 
  542.         Parameter (kSGSetDataOutputSelect = $2)
  543.         Integer*2 kSGGetDataOutputSelect 
  544.         Parameter (kSGGetDataOutputSelect = $3)
  545.         Integer*2 kSGSetGWorldSelect 
  546.         Parameter (kSGSetGWorldSelect = $4)
  547.         Integer*2 kSGGetGWorldSelect 
  548.         Parameter (kSGGetGWorldSelect = $5)
  549.         Integer*2 kSGNewChannelSelect 
  550.         Parameter (kSGNewChannelSelect = $6)
  551.         Integer*2 kSGDisposeChannelSelect 
  552.         Parameter (kSGDisposeChannelSelect = $7)
  553.         Integer*2 kSGStartPreviewSelect 
  554.         Parameter (kSGStartPreviewSelect = $10)
  555.         Integer*2 kSGStartRecordSelect 
  556.         Parameter (kSGStartRecordSelect = $11)
  557.         Integer*2 kSGIdleSelect 
  558.         Parameter (kSGIdleSelect = $12)
  559.         Integer*2 kSGStopSelect 
  560.         Parameter (kSGStopSelect = $13)
  561.         Integer*2 kSGPauseSelect 
  562.         Parameter (kSGPauseSelect = $14)
  563.         Integer*2 kSGPrepareSelect 
  564.         Parameter (kSGPrepareSelect = $15)
  565.         Integer*2 kSGReleaseSelect 
  566.         Parameter (kSGReleaseSelect = $16)
  567.         Integer*2 kSGGetMovieSelect 
  568.         Parameter (kSGGetMovieSelect = $17)
  569.         Integer*2 kSGSetMaximumRecordTimeSelect 
  570.         Parameter (kSGSetMaximumRecordTimeSelect = $18)
  571.         Integer*2 kSGGetMaximumRecordTimeSelect 
  572.         Parameter (kSGGetMaximumRecordTimeSelect = $19)
  573.         Integer*2 kSGGetStorageSpaceRemainingSelect 
  574.         Parameter (kSGGetStorageSpaceRemainingSelect = $1)a
  575.         Integer*2 kSGGetTimeRemainingSelect 
  576.         Parameter (kSGGetTimeRemainingSelect = $1)b
  577.         Integer*2 kSGGrabPictSelect 
  578.         Parameter (kSGGrabPictSelect = $1)c
  579.         Integer*2 kSGGetLastMovieResIDSelect 
  580.         Parameter (kSGGetLastMovieResIDSelect = $1)d
  581.         Integer*2 kSGSetFlagsSelect 
  582.         Parameter (kSGSetFlagsSelect = $1)e
  583.         Integer*2 kSGGetFlagsSelect 
  584.         Parameter (kSGGetFlagsSelect = $1)f
  585.     
  586.         Integer*2 kSGCSetChannelUsageSelect 
  587.         Parameter (kSGCSetChannelUsageSelect = $80)
  588.         Integer*2 kSGCGetChannelUsageSelect 
  589.         Parameter (kSGCGetChannelUsageSelect = $81)
  590.         Integer*2 kSGCSetChannelBoundsSelect 
  591.         Parameter (kSGCSetChannelBoundsSelect = $82)
  592.         Integer*2 kSGCGetChannelBoundsSelect 
  593.         Parameter (kSGCGetChannelBoundsSelect = $83)
  594.         Integer*2 kSGCSetChannelVolumeSelect 
  595.         Parameter (kSGCSetChannelVolumeSelect = $84)
  596.         Integer*2 kSGCGetChannelVolumeSelect 
  597.         Parameter (kSGCGetChannelVolumeSelect = $85)
  598.         Integer*2 kSGCGetChannelInfoSelect 
  599.         Parameter (kSGCGetChannelInfoSelect = $86)
  600.         Integer*2 kSGCSetChannelPlayFlagsSelect 
  601.         Parameter (kSGCSetChannelPlayFlagsSelect = $87)
  602.         Integer*2 kSGCGetChannelPlayFlagsSelect 
  603.         Parameter (kSGCGetChannelPlayFlagsSelect = $88)
  604.         Integer*2 kSGCSetChannelMaxFramesSelect 
  605.         Parameter (kSGCSetChannelMaxFramesSelect = $89)
  606.         Integer*2 kSGCGetChannelMaxFramesSelect 
  607.         Parameter (kSGCGetChannelMaxFramesSelect = $8)a
  608.         Integer*2 kSGCSetChannelRefConSelect 
  609.         Parameter (kSGCSetChannelRefConSelect = $8)b
  610.     
  611.         Integer*2 kSGCGetSrcVideoBoundsSelect 
  612.         Parameter (kSGCGetSrcVideoBoundsSelect = $100)
  613.         Integer*2 kSGCSetVideoRectSelect 
  614.         Parameter (kSGCSetVideoRectSelect = $101)
  615.         Integer*2 kSGCGetVideoRectSelect 
  616.         Parameter (kSGCGetVideoRectSelect = $102)
  617.         Integer*2 kSGCGetVideoCompressorTypeSelect 
  618.         Parameter (kSGCGetVideoCompressorTypeSelect = $103)
  619.         Integer*2 kSGCSetVideoCompressorTypeSelect 
  620.         Parameter (kSGCSetVideoCompressorTypeSelect = $104)
  621.         Integer*2 kSGCSetVideoCompressorSelect 
  622.         Parameter (kSGCSetVideoCompressorSelect = $105)
  623.         Integer*2 kSGCGetVideoCompressorSelect 
  624.         Parameter (kSGCGetVideoCompressorSelect = $106)
  625.         Integer*2 kSGCGetVideoDigitizerComponentSelect 
  626.         Parameter (kSGCGetVideoDigitizerComponentSelect = $107)
  627.         Integer*2 kSGCSetVideoDigitizerComponentSelect 
  628.         Parameter (kSGCSetVideoDigitizerComponentSelect = $108)
  629.         Integer*2 kSGCVideoDigitizerChangedSelect 
  630.         Parameter (kSGCVideoDigitizerChangedSelect = $109)
  631.         Integer*2 kSGCSetVideoBottlenecksSelect 
  632.         Parameter (kSGCSetVideoBottlenecksSelect = $10)a
  633.         Integer*2 kSGCGetVideoBottlenecksSelect 
  634.         Parameter (kSGCGetVideoBottlenecksSelect = $10)b
  635.         Integer*2 kSGCGrabFrameSelect 
  636.         Parameter (kSGCGrabFrameSelect = $10)c
  637.         Integer*2 kSGCGrabFrameCompleteSelect 
  638.         Parameter (kSGCGrabFrameCompleteSelect = $10)d
  639.         Integer*2 kSGCDisplayFrameSelect 
  640.         Parameter (kSGCDisplayFrameSelect = $10)e
  641.         Integer*2 kSGCCompressFrameSelect 
  642.         Parameter (kSGCCompressFrameSelect = $10)f
  643.         Integer*2 kSGCCompressFrameCompleteSelect 
  644.         Parameter (kSGCCompressFrameCompleteSelect = $110)
  645.         Integer*2 kSGCAddFrameSelect 
  646.         Parameter (kSGCAddFrameSelect = $111)
  647.         Integer*2 kSGCTransferFrameForCompressSelect 
  648.         Parameter (kSGCTransferFrameForCompressSelect = $112)
  649.         Integer*2 kSGCSetCompressBufferSelect 
  650.         Parameter (kSGCSetCompressBufferSelect = $113)
  651.         Integer*2 kSGCGetCompressBufferSelect 
  652.         Parameter (kSGCGetCompressBufferSelect = $114)
  653.         Integer*2 kSGCGetBufferInfoSelect 
  654.         Parameter (kSGCGetBufferInfoSelect = $115)
  655.     
  656.         Integer*2 kSGCSetSoundInputDriverSelect 
  657.         Parameter (kSGCSetSoundInputDriverSelect = $100)
  658.         Integer*2 kSGCGetSoundInputDriverSelect 
  659.         Parameter (kSGCGetSoundInputDriverSelect = $101)
  660.         Integer*2 kSGCSoundInputDriverChangedSelect 
  661.         Parameter (kSGCSoundInputDriverChangedSelect = $102)
  662.         Integer*2 kSGCSetSoundRecordChunkSizeSelect 
  663.         Parameter (kSGCSetSoundRecordChunkSizeSelect = $103)
  664.         Integer*2 kSGCGetSoundRecordChunkSizeSelect 
  665.         Parameter (kSGCGetSoundRecordChunkSizeSelect = $104)
  666.         Integer*2 kSGCSetSoundInputRateSelect 
  667.         Parameter (kSGCSetSoundInputRateSelect = $105)
  668.         Integer*2 kSGCGetSoundInputRateSelect 
  669.         Parameter (kSGCGetSoundInputRateSelect = $106)
  670.     
  671.         Integer*2 kSGCInitChannelSelect 
  672.         Parameter (kSGCInitChannelSelect = $180)
  673.         Integer*2 kSGCWriteSamplesSelect 
  674.         Parameter (kSGCWriteSamplesSelect = $181)
  675.         Integer*2 kSGCGetDataRateSelect 
  676.         Parameter (kSGCGetDataRateSelect = $182)
  677.     
  678.         Integer*2 kSGWriteMovieDataSelect 
  679.         Parameter (kSGWriteMovieDataSelect = $100)
  680.         Integer*2 kSGAddFrameReferenceSelect 
  681.         Parameter (kSGAddFrameReferenceSelect = $101)
  682.         Integer*2 kSGGetNextFrameReferenceSelect 
  683.         Parameter (kSGGetNextFrameReferenceSelect = $102)
  684.         Integer*2 kSGGetTimeBaseSelect 
  685.         Parameter (kSGGetTimeBaseSelect = $103)
  686.     
  687. !!ENDC ! GOTQuickTimeComponents 
  688.     
  689.